home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 34.zip
/
BS1 part 34
/
FredFish PD 302.adf
/
ProgUtils
/
WaitSig.asm
< prev
next >
Wrap
Assembly Source File
|
1990-01-15
|
2KB
|
113 lines
opt c+,l-
;******************************
;* Wait for a signal *
;* © J.Tyberghein 29 sep 89 *
;******************************
SysBase equ 4
;ExecBase routines
_LVOOldOpenLibrary equ -408
_LVOCloseLibrary equ -414
_LVOWait equ -318
;DosBase routines
_LVOOutput equ -60
_LVOWrite equ -48
CALLEXEC macro
move.l (SysBase).w,a6
jsr _LVO\1(a6)
endm
CALLDOS macro
move.l DosBase,a6
jsr _LVO\1(a6)
endm
lea DosLib,a1
CALLEXEC OldOpenLibrary
move.l d0,DosBase
CALLDOS Output
move.l d0,OutputHandle
move.l #255,d0
CALLEXEC Wait
lea Dummy,a0
bsr ToString
bsr Message
move.l DosBase,a1
CALLEXEC CloseLibrary
rts
;*** String length ***
;a0 = string address
;-> d0 = length
;***
StrLen:
moveq #-1,d0
LoopSL:
addq.l #1,d0
tst.b (a0)+
bne.s LoopSL
rts
;*** Convert an int to a string ***
;a0 = pointer
;d0 = int
;-> a0 = int string
;***
ToString:
move.w d0,d1
moveq #0,d2
LoopTS:
tst.w d1
beq.s EndLTS
ext.l d1
divu #10,d1
addq.w #1,d2
bra.s LoopTS
EndLTS:
move.b #10,(a0,d2.w)
move.b #0,1(a0,d2.w)
Loop2:
tst.w d2
beq.s End2
subq.w #1,d2
ext.l d0
divu #10,d0
swap d0
add.w #48,d0
move.b d0,(a0,d2.w)
swap d0
bra.s Loop2
End2:
rts
;*** Put a message on the screen ***
;a0 = message
;***
Message:
movem.l a0,-(a7)
bsr StrLen
movem.l (a7)+,a0
move.l d0,d3
move.l OutputHandle,d1
move.l a0,d2
CALLDOS Write
rts
EVEN
DosBase: dc.l 0
OutputHandle: dc.l 0
;Library names
DosLib: dc.b "dos.library",0
EVEN
Dummy: ds.b 5
END